#ifndef __GP_JXH42_CALIBRATION_H__
#define __GP_JXH42_CALIBRATION_H__

#include "..\gp_LensDef.h"


static const INT16U g_ob[15] =
{
	0, // obautoen
	0, // ob_type
	0, // obHOffset
	0, // obVOffset

	1, // obmanuen
	16, // maunob

	1, // wboffseten
	0, // wbo_r
	0, // wbo_gr
	0, // wbo_gb
	0, // wbo_b

	0, // badpixen
	120, // bprthr
	120, // bpgthr
	120 // bpbthr
};

const unsigned int	g_gamma[] =
{
	/*
0x04510d, 0x051112, 0x111417, 0x14451b, 0x111120, 0x044425, 0x111129, 0x05112d,
0x044432, 0x044436, 0x04443a, 0x04443e, 0x044442, 0x110446, 0x111149, 0x04444d,
0x111051, 0x044154, 0x111058, 0x10445b, 0x04415e, 0x011062, 0x011065, 0x010468,
0x01046b, 0x01046e, 0x041071, 0x041074, 0x104176, 0x010479, 0x04107c, 0x00417e,
0x041081, 0x010183, 0x101086, 0x040488, 0x01018a, 0x10408d, 0x10108f, 0x041091,
0x040493, 0x040495, 0x040497, 0x040499, 0x10109b, 0x00109d, 0x00409f, 0x0101a0,
0x1004a2, 0x0010a4, 0x0100a6, 0x1004a7, 0x0040a9, 0x1001aa, 0x0040ac, 0x1001ad,
0x0100af, 0x0004b0, 0x0400b2, 0x0040b3, 0x0004b4, 0x0400b6, 0x0100b7, 0x0010b8,
0x0004b9, 0x1000bb, 0x0400bc, 0x0100bd, 0x0040be, 0x0010bf, 0x0004c0, 0x0004c1,
0x0001c2, 0x0001c3, 0x0000c5, 0x0000c6, 0x0000c7, 0x0000c8, 0x0000c9, 0x0000ca,
0x0000cb, 0x0000cc, 0x0000cd, 0x0000ce, 0x0000cf, 0x0000d0, 0x0001d0, 0x0001d1,
0x0001d2, 0x0001d3, 0x0001d4, 0x0001d5, 0x0001d6, 0x0001d7, 0x0001d8, 0x0001d9,
0x0000db, 0x0000dc, 0x1000dd, 0x0400de, 0x0400df, 0x0100e0, 0x0040e1, 0x0010e2,
0x0004e3, 0x1000e5, 0x0100e6, 0x0040e7, 0x0004e8, 0x1000ea, 0x0100eb, 0x0004ec,
0x0400ee, 0x0040ef, 0x1001f0, 0x0040f2, 0x1004f3, 0x0040f5, 0x0401f6, 0x0010f8,
0x0100fa, 0x0404fb, 0x1010fd, 0x0000ff, 0x0000ff, 0x0000ff, 0x0000ff, 0x0000ff
*/
#if 0
	// by shuhai
	/*
0x000000, 0x044000, 0x111403, 0x111107, 0x05110b, 0x044410, 0x044414, 0x044418,
0x04441c, 0x11111f, 0x111123, 0x044127, 0x10442b, 0x01112e, 0x044432, 0x011135,
0x104439, 0x04413c, 0x011040, 0x110443, 0x104446, 0x104149, 0x04414c, 0x04414f,
0x104152, 0x104155, 0x110458, 0x01045b, 0x04105e, 0x104160, 0x010463, 0x041066,
0x004168, 0x04106b, 0x00416d, 0x041070, 0x010472, 0x104174, 0x041077, 0x040479,
0x01017b, 0x00407e, 0x104080, 0x101082, 0x101084, 0x101086, 0x101088, 0x10108a,
0x10108c, 0x00408e, 0x004090, 0x010191, 0x040193, 0x100495, 0x001097, 0x010099,
0x04019a, 0x00109c, 0x01009e, 0x10049f, 0x0040a1, 0x0401a2, 0x0010a4, 0x0100a6,
0x0010a7, 0x0100a9, 0x0010aa, 0x0400ac, 0x0010ad, 0x0401ae, 0x0040b0, 0x1004b1,
0x0100b3, 0x0010b4, 0x1001b5, 0x0100b7, 0x0010b8, 0x0400ba, 0x0040bb, 0x0004bc,
0x1001bd, 0x0100bf, 0x0010c0, 0x1001c1, 0x0100c3, 0x0010c4, 0x1001c5, 0x0400c7,
0x0040c8, 0x0004c9, 0x0400cb, 0x0040cc, 0x0004cd, 0x0400cf, 0x0040d0, 0x0004d1,
0x0400d3, 0x0040d4, 0x0004d5, 0x0100d7, 0x0010d8, 0x1001d9, 0x0040db, 0x1004dc,
0x0100de, 0x0004df, 0x0100e1, 0x0010e2, 0x0100e4, 0x0004e5, 0x0100e7, 0x1004e8,
0x0040ea, 0x0401eb, 0x1010ed, 0x0040ef, 0x0401f0, 0x1004f2, 0x0040f4, 0x0100f6,
0x0101f7, 0x0404f9, 0x1010fb, 0x1010fd, 0x0000ff, 0x0000ff, 0x0000ff, 0x0000ff*/


// modified gamma from shuhai calibration
0x044100, 0x011103, 0x110407, 0x04410a, 0x11110d, 0x044411, 0x011114, 0x104418,
0x04411b, 0x01111e, 0x104422, 0x041125, 0x011029, 0x10442c, 0x04412f, 0x041132,
0x011036, 0x010439, 0x11043c, 0x10443f, 0x041142, 0x011046, 0x011049, 0x01104c,
0x04104f, 0x011052, 0x010455, 0x041058, 0x04105b, 0x10415d, 0x010460, 0x041063,
0x104165, 0x010468, 0x04106b, 0x10406e, 0x010470, 0x104073, 0x040475, 0x004177,
0x10107a, 0x04047c, 0x01017e, 0x104081, 0x101083, 0x040485, 0x040487, 0x010189,
0x00408c, 0x00408e, 0x004090, 0x004092, 0x010193, 0x040195, 0x100497, 0x004099,
0x01009b, 0x00049c, 0x01009e, 0x00049f, 0x0400a1, 0x0040a2, 0x0010a3, 0x0001a4,
0x0400a6, 0x0100a7, 0x0100a8, 0x0040a9, 0x0010aa, 0x0010ab, 0x0004ac, 0x1000ae,
0x0100af, 0x0040b0, 0x0010b1, 0x0004b2, 0x0001b3, 0x1000b5, 0x1000b6, 0x0400b7,
0x0100b8, 0x0100b9, 0x0040ba, 0x0010bb, 0x0004bc, 0x0004bd, 0x0004be, 0x0010bf,
0x0010c0, 0x0100c1, 0x0400c2, 0x1000c3, 0x0000c4, 0x0001c4, 0x0004c5, 0x0010c6,
0x0010c7, 0x0010c8, 0x0010c9, 0x0004ca, 0x0001cb, 0x1000cd, 0x1000ce, 0x0100cf,
0x0010d0, 0x0004d1, 0x1001d2, 0x0100d4, 0x0010d5, 0x0401d6, 0x0010d8, 0x0100da,
0x1004db, 0x0010dd, 0x0040df, 0x0040e1, 0x1010e3, 0x0410e5, 0x0101e7, 0x0040ea,
0x0410ec, 0x0104ee, 0x1040f1, 0x0104f3, 0x1010f6, 0x0104f8, 0x0040fb, 0x1010fd

#else
	// 1248 with H22
	/*
0x04510d, 0x051112, 0x111417, 0x14451b, 0x111120, 0x044425, 0x111129, 0x05112d,
0x044432, 0x044436, 0x04443a, 0x04443e, 0x044442, 0x110446, 0x111149, 0x04444d,
0x111051, 0x044154, 0x111058, 0x10445b, 0x04415e, 0x011062, 0x011065, 0x010468,
0x01046b, 0x01046e, 0x041071, 0x041074, 0x104176, 0x010479, 0x04107c, 0x00417e,
0x041081, 0x010183, 0x101086, 0x040488, 0x01018a, 0x10408d, 0x10108f, 0x041091,
0x040493, 0x040495, 0x040497, 0x040499, 0x10109b, 0x00109d, 0x00409f, 0x0101a0,
0x1004a2, 0x0010a4, 0x0100a6, 0x1004a7, 0x0040a9, 0x1001aa, 0x0040ac, 0x1001ad,
0x0100af, 0x0004b0, 0x0400b2, 0x0040b3, 0x0004b4, 0x0400b6, 0x0100b7, 0x0010b8,
0x0004b9, 0x1000bb, 0x0400bc, 0x0100bd, 0x0040be, 0x0010bf, 0x0004c0, 0x0004c1,
0x0001c2, 0x0001c3, 0x0000c5, 0x0000c6, 0x0000c7, 0x0000c8, 0x0000c9, 0x0000ca,
0x0000cb, 0x0000cc, 0x0000cd, 0x0000ce, 0x0000cf, 0x0000d0, 0x0001d0, 0x0001d1,
0x0001d2, 0x0001d3, 0x0001d4, 0x0001d5, 0x0001d6, 0x0001d7, 0x0001d8, 0x0001d9,
0x0000db, 0x0000dc, 0x1000dd, 0x0400de, 0x0400df, 0x0100e0, 0x0040e1, 0x0010e2,
0x0004e3, 0x1000e5, 0x0100e6, 0x0040e7, 0x0004e8, 0x1000ea, 0x0100eb, 0x0004ec,
0x0400ee, 0x0040ef, 0x1001f0, 0x0040f2, 0x1004f3, 0x0040f5, 0x0401f6, 0x0010f8,
0x0100fa, 0x0404fb, 0x1010fd, 0x0000ff, 0x0000ff, 0x0000ff, 0x0000ff, 0x0000ff*/
0x051100, 0x111405, 0x11140a, 0x11440f, 0x114414, 0x044518, 0x11111d, 0x114422,
0x045126, 0x11442b, 0x11112f, 0x144434, 0x111138, 0x11113c, 0x111140, 0x111144,
0x111148, 0x11114c, 0x111150, 0x041154, 0x044458, 0x01105c, 0x10445f, 0x041162,
0x011066, 0x011069, 0x01106c, 0x04106f, 0x041072, 0x104174, 0x010477, 0x04107a,
0x01047c, 0x04107f, 0x010481, 0x104084, 0x040486, 0x104188, 0x04108b, 0x01048d,
0x00418f, 0x104092, 0x041094, 0x040496, 0x010198, 0x00409b, 0x01019c, 0x00419e,
0x0101a0, 0x0401a2, 0x0404a4, 0x1004a6, 0x0040a8, 0x0101a9, 0x1004ab, 0x0040ad,
0x1004ae, 0x0040b0, 0x1004b1, 0x0040b3, 0x0010b4, 0x0001b5, 0x0400b7, 0x0100b8,
0x0040b9, 0x0010ba, 0x0004bb, 0x0004bc, 0x0001bd, 0x0001be, 0x1000c0, 0x0400c1,
0x0100c2, 0x0100c3, 0x0040c4, 0x0040c5, 0x0010c6, 0x0010c7, 0x0010c8, 0x0010c9,
0x0010ca, 0x0010cb, 0x0010cc, 0x0004cd, 0x0001ce, 0x0001cf, 0x0001d0, 0x0001d1,
0x0001d2, 0x0004d3, 0x0004d4, 0x0004d5, 0x0010d6, 0x0010d7, 0x0010d8, 0x0010d9,
0x0004da, 0x0004db, 0x0001dc, 0x0001dd, 0x1000df, 0x0400e0, 0x0100e1, 0x0010e2,
0x1001e3, 0x0100e5, 0x0040e6, 0x0004e7, 0x1000e9, 0x0100ea, 0x0010eb, 0x0001ec,
0x0400ee, 0x0100ef, 0x0040f0, 0x0010f1, 0x0004f2, 0x0001f3, 0x0001f4, 0x0000f6,
0x1000f7, 0x0400f8, 0x0400f9, 0x0100fa, 0x0100fb, 0x0040fc, 0x0040fd, 0x0040fe,

#endif

	// 2159 with 3006
	/*	0x199900, 0x15960b, 0x155615, 0x15561e, 0x155526, 0x11542e, 0x114534, 0x04543a,
	0x04513f, 0x111144, 0x144449, 0x11114d, 0x144452, 0x051156, 0x05145b, 0x011160,
	0x044464, 0x104468, 0x01116b, 0x10446f, 0x041172, 0x110476, 0x104479, 0x04417c,
	0x04417f, 0x044182, 0x104185, 0x104188, 0x01048b, 0x04108e, 0x010490, 0x101093,
	0x010495, 0x004197, 0x00409a, 0x10109c, 0x00409e, 0x0040a0, 0x0101a1, 0x1004a3,
	0x0040a5, 0x1001a6, 0x0100a8, 0x0010a9, 0x1001aa, 0x0400ac, 0x0100ad, 0x0040ae,
	0x0010af, 0x0010b0, 0x0010b1, 0x0040b2, 0x0040b3, 0x0100b4, 0x0400b5, 0x1000b6,
	0x0000b7, 0x0000b8, 0x0001b8, 0x0004b9, 0x0010ba, 0x0040bb, 0x0040bc, 0x0040bd,
	0x0040be, 0x0040bf, 0x0010c0, 0x0004c1, 0x1001c2, 0x0100c4, 0x0040c5, 0x0040c6,
	0x0040c7, 0x0040c8, 0x0040c9, 0x0100ca, 0x0100cb, 0x0100cc, 0x0400cd, 0x0400ce,
	0x0400cf, 0x0000d0, 0x0000d1, 0x0001d1, 0x0004d2, 0x0010d3, 0x0010d4, 0x0010d5,
	0x0010d6, 0x0010d7, 0x0010d8, 0x0004d9, 0x0004da, 0x0001db, 0x1000dd, 0x0400de,
	0x0100df, 0x0040e0, 0x0010e1, 0x0001e2, 0x1000e4, 0x0100e5, 0x0040e6, 0x0010e7,
	0x0004e8, 0x1000ea, 0x0400eb, 0x0040ec, 0x0010ed, 0x0004ee, 0x1001ef, 0x0400f1,
	0x0100f2, 0x0100f3, 0x0040f4, 0x0010f5, 0x0004f6, 0x0004f7, 0x0001f8, 0x0001f9,
	0x0001fa, 0x0001fb, 0x0004fc, 0x0010fd, 0x0040fe, 0x0000ff, 0x0000ff, 0x0000ff*/
};

const unsigned int	g_gamma2[] =
{
	0x04510d, 0x051112, 0x111417, 0x14451b, 0x111120, 0x044425, 0x111129, 0x05112d,
	0x044432, 0x044436, 0x04443a, 0x04443e, 0x044442, 0x110446, 0x111149, 0x04444d,
	0x111051, 0x044154, 0x111058, 0x10445b, 0x04415e, 0x011062, 0x011065, 0x010468,
	0x01046b, 0x01046e, 0x041071, 0x041074, 0x104176, 0x010479, 0x04107c, 0x00417e,
	0x041081, 0x010183, 0x101086, 0x040488, 0x01018a, 0x10408d, 0x10108f, 0x041091,
	0x040493, 0x040495, 0x040497, 0x040499, 0x10109b, 0x00109d, 0x00409f, 0x0101a0,
	0x1004a2, 0x0010a4, 0x0100a6, 0x1004a7, 0x0040a9, 0x1001aa, 0x0040ac, 0x1001ad,
	0x0100af, 0x0004b0, 0x0400b2, 0x0040b3, 0x0004b4, 0x0400b6, 0x0100b7, 0x0010b8,
	0x0004b9, 0x1000bb, 0x0400bc, 0x0100bd, 0x0040be, 0x0010bf, 0x0004c0, 0x0004c1,
	0x0001c2, 0x0001c3, 0x0000c5, 0x0000c6, 0x0000c7, 0x0000c8, 0x0000c9, 0x0000ca,
	0x0000cb, 0x0000cc, 0x0000cd, 0x0000ce, 0x0000cf, 0x0000d0, 0x0001d0, 0x0001d1,
	0x0001d2, 0x0001d3, 0x0001d4, 0x0001d5, 0x0001d6, 0x0001d7, 0x0001d8, 0x0001d9,
	0x0000db, 0x0000dc, 0x1000dd, 0x0400de, 0x0400df, 0x0100e0, 0x0040e1, 0x0010e2,
	0x0004e3, 0x1000e5, 0x0100e6, 0x0040e7, 0x0004e8, 0x1000ea, 0x0100eb, 0x0004ec,
	0x0400ee, 0x0040ef, 0x1001f0, 0x0040f2, 0x1004f3, 0x0040f5, 0x0401f6, 0x0010f8,
	0x0100fa, 0x0404fb, 0x1010fd, 0x0000ff, 0x0000ff, 0x0000ff, 0x0000ff, 0x0000ff
};

static const unsigned short g_wb_gain[61][2] =
{			/*2000K~8000K*/
#if 1
	// by shuhai
	{ 36, 177 },
	{ 41, 174 },
	{ 45, 171 },
	{ 49, 168 },
	{ 52, 165 },
	{ 56, 162 },
	{ 59, 160 },
	{ 62, 157 },
	{ 66, 154 },
	{ 68, 152 },
	{ 71, 149 },
	{ 74, 147 },
	{ 76, 144 },
	{ 79, 142 },
	{ 81, 140 },
	{ 83, 137 },
	{ 85, 135 },
	{ 87, 133 },
	{ 89, 131 },
	{ 91, 129 },
	{ 93, 127 },
	{ 94, 125 },
	{ 96, 123 },
	{ 97, 122 },
	{ 99, 120 },
	{ 100, 118 },
	{ 102, 117 },
	{ 103, 115 },
	{ 104, 113 },
	{ 106, 112 },
	{ 107, 111 },
	{ 108, 109 },
	{ 110, 108 },
	{ 111, 107 },
	{ 112, 106 },
	{ 113, 104 },
	{ 115, 103 },
	{ 116, 102 },
	{ 118, 101 },
	{ 119, 101 },
	{ 120, 100 },
	{ 122, 99 },
	{ 124, 98 },
	{ 125, 98 },
	{ 127, 97 },
	{ 129, 96 },
	{ 131, 96 },
	{ 133, 95 },
	{ 135, 95 },
	{ 137, 95 },
	{ 139, 94 },
	{ 142, 94 },
	{ 144, 94 },
	{ 147, 94 },
	{ 150, 94 },
	{ 153, 94 },
	{ 156, 94 },
	{ 159, 94 },
	{ 163, 94 },
	{ 166, 94 },
	{ 170, 95 }

#else
	// by Comi
	{ 31, 178 },
	{ 38, 176 },
	{ 45, 174 },
	{ 51, 172 },
	{ 56, 170 },
	{ 62, 168 },
	{ 67, 166 },
	{ 71, 164 },
	{ 75, 162 },
	{ 79, 160 },
	{ 82, 158 },
	{ 86, 156 },
	{ 89, 154 },
	{ 91, 152 },
	{ 94, 151 },
	{ 96, 149 },
	{ 98, 147 },
	{ 100, 145 },
	{ 102, 143 },
	{ 103, 141 },
	{ 105, 139 },
	{ 106, 138 },
	{ 107, 136 },
	{ 109, 134 },
	{ 110, 132 },
	{ 111, 131 },
	{ 112, 129 },
	{ 113, 127 },
	{ 114, 125 },
	{ 115, 124 },
	{ 116, 122 },
	{ 116, 120 },
	{ 117, 119 },
	{ 118, 117 },
	{ 119, 116 },
	{ 120, 114 },
	{ 121, 112 },
	{ 122, 111 },
	{ 123, 109 },
	{ 124, 108 },
	{ 125, 106 },
	{ 126, 105 },
	{ 127, 103 },
	{ 128, 102 },
	{ 129, 100 },
	{ 130, 99 },
	{ 131, 97 },
	{ 132, 96 },
	{ 133, 94 },
	{ 133, 93 },
	{ 134, 92 },
	{ 135, 90 },
	{ 136, 89 },
	{ 136, 87 },
	{ 137, 86 },
	{ 137, 85 },
	{ 138, 83 },
	{ 138, 82 },
	{ 138, 81 },
	{ 138, 80 },
	{ 137, 78 },
	{ 137, 77 },
	{ 136, 76 },
	{ 135, 75 },
	{ 133, 73 },
	{ 132, 72 },
	{ 130, 71 },
	{ 128, 70 },
	{ 125, 69 },
	{ 122, 68 },
	{ 119, 67 }

#endif
};

static const signed short	g_awb_thr[] =
{
#if 1
	200,	// awbwinthr
	0 * 64, // sindata
	1 * 64, // cosdata
	40,		// Ythr0
	90,		// Ythr1
	140,	// Ythr2
	190,	// Ythr3

	// wb thr
	-4,		// UL1N1
	4,		// UL1P1
	-4,		// VL1N1
	4,		// VL1P1
	-6,		//UL1N2
	6,		//UL1P2
	-6,		//VL1N2
	6,		// VL1P2
	-8,		// UL1N3
	8,		//UL1P3
	-8,		// VL1N3
	8,		//VL1P3
#else
	180,	// awbwinthr
	0 * 64, // sindata
	1 * 64, // cosdata
	40,		// Ythr0
	80,		// Ythr1
	130,	// Ythr2
	180,	// Ythr3

	// wb thr
	-6,		// UL1N1
	5,		// UL1P1
	-5,		// VL1N1
	4,		// VL1P1
	-9,		//UL1N2
	8,		//UL1P2
	-8,		//VL1N2
	7,		// VL1P2
	-16,	// UL1N3
	16,		//UL1P3
	-16,	// VL1N3
	15,		//VL1P3
#endif

	// without wb thr
	-28,	// UL1N1
	-6,		// UL1P1
	-28,	// VL1N1
	6,		// VL1P1
	-36,	//UL1N2
	-4,		//UL1P2
	-42,	//VL1N2
	7,		// VL1P2
	-56,	// UL1N3
	-2,		//UL1P3
	-56,	// VL1N3
	8,		//VL1P3

	//initial r/b gain
	113, //r gain
	119,  //b gain

	//GdivB& GdivR
	0,			//awb_win.gdbthr1
	16383,	//awb_win.gdbthr2
	0,			//awb_win.gdrthr1
	16383	//awb_win.gdrthr2
};

static const signed short	g_color_matrix[9] =
{
	// by shuhai
	(short) (1.43255553381156120000 * 64),
	(short) (-0.3971204933300813700 * 64),
	(short) (-0.0354350404814797950 * 64),
	(short) (-0.1800596891565572600 * 64),
	(short) (1.43490820855334290000 * 64),
	(short) (-0.2548485193967854900 * 64),
	(short) (0.01381660917881381200 * 64),
	(short) (-0.9766804548261102100 * 64),
	(short) (1.96286384564729640000 * 64)
};

const INT8U					LiTable_rgb[48] =
{			//R*16,Gb/Gr*16,B*16
	0x1e, 0x2e, 0x3e, 0x4e, 0x5e, 0x6e, 0x7e, 0x8e, 0x9e, 0xae, 0xbe, 0xce, 0xde, 
	0xee, 0xfe, 0xff, 0x0f, 0x1f, 0x2f, 0x3f, 0x4f, 0x5f, 0x6f, 0x7f, 0x8f, 0x9f, 
	0xaf, 0xbf, 0xcf, 0xdf, 0xef, 0xff, 0x07, 0x17, 0x27, 0x37, 0x47, 0x57, 0x67, 
	0x77, 0x87, 0x97, 0xa7, 0xb7, 0xc7, 0xd7, 0xe7, 0xf7
};

const INT16U				MaxTan8[32] =
{
	0x0C0, 0x155, 0x154, 0x0C1, 0x0BF, 0x156, 0x153, 0x0C2, 0x0BF, 0x154, 0x153, 
	0x0C0, 0x0BE, 0x155, 0x152, 0x0C1, 0x0BE, 0x153, 0x152, 0x0BF, 0x0BD, 0x154, 
	0x151, 0x0C0, 0x0BD, 0x152, 0x151, 0x0BE, 0x0BC, 0x153, 0x150, 0x0BF
};

const INT16U				Slope4[16] = { 0x155, 0x154, 0x153, 0x152, 0x151, 0x152, 0x153, 0x154, 0x155, 0x154, 0x153, 0x152, 0x151, 0x152, 0x153, 0x154 };

const INT16U				CLPoint[8] =	//Sensor Center is Weight/2, Hight/2 for RGB
{
  0x2df, 0x0f0, 0x294, 0x116, 0x29d, 0x107, 0x294, 0x118
};

const INT16U				Radius_File_0[512] =
{
	0x100, 0x101, 0x102, 0x103, 0x104, 0x105, 0x106, 0x107, 0x102, 0x103, 0x104, 
	0x105, 0x106, 0x107, 0x108, 0x109, 0x104, 0x105, 0x106, 0x107, 0x108, 0x109, 
	0x10a, 0x10b, 0x106, 0x107, 0x108, 0x109, 0x10a, 0x10b, 0x10c, 0x10d, 0x108, 
	0x109, 0x10a, 0x10b, 0x10c, 0x10d, 0x10e, 0x10f, 0x10a, 0x10b, 0x10c, 0x10d, 
	0x10e, 0x10f, 0x110, 0x111, 0x10c, 0x10d, 0x10e, 0x10f, 0x110, 0x111, 0x112, 
	0x113, 0x10e, 0x10f, 0x110, 0x111, 0x112, 0x113, 0x114, 0x115, 0x110, 0x111, 
	0x112, 0x113, 0x114, 0x115, 0x116, 0x117, 0x112, 0x113, 0x114, 0x115, 0x116, 
	0x117, 0x118, 0x119, 0x114, 0x115, 0x116, 0x117, 0x118, 0x119, 0x11a, 0x11b, 
	0x116, 0x117, 0x118, 0x119, 0x11a, 0x11b, 0x11c, 0x11d, 0x118, 0x119, 0x11a, 
	0x11b, 0x11c, 0x11d, 0x11e, 0x11f, 0x11a, 0x11b, 0x11c, 0x11d, 0x11e, 0x11f, 
	0x120, 0x121, 0x11c, 0x11d, 0x11e, 0x11f, 0x120, 0x121, 0x122, 0x123, 0x11e, 
	0x11f, 0x120, 0x121, 0x122, 0x123, 0x124, 0x125, 0x102, 0x103, 0x104, 0x105, 
	0x106, 0x107, 0x108, 0x109, 0x104, 0x105, 0x106, 0x107, 0x108, 0x109, 0x10a, 
	0x10b, 0x106, 0x107, 0x108, 0x109, 0x10a, 0x10b, 0x10c, 0x10d, 0x108, 0x109, 
	0x10a, 0x10b, 0x10c, 0x10d, 0x10e, 0x10f, 0x10a, 0x10b, 0x10c, 0x10d, 0x10e, 
	0x10f, 0x110, 0x111, 0x10c, 0x10d, 0x10e, 0x10f, 0x110, 0x111, 0x112, 0x113, 
	0x10e, 0x10f, 0x110, 0x111, 0x112, 0x113, 0x114, 0x115, 0x110, 0x111, 0x112, 
	0x113, 0x114, 0x115, 0x116, 0x117, 0x112, 0x113, 0x114, 0x115, 0x116, 0x117, 
	0x118, 0x119, 0x114, 0x115, 0x116, 0x117, 0x118, 0x119, 0x11a, 0x11b, 0x116, 
	0x117, 0x118, 0x119, 0x11a, 0x11b, 0x11c, 0x11d, 0x118, 0x119, 0x11a, 0x11b, 
	0x11c, 0x11d, 0x11e, 0x11f, 0x11a, 0x11b, 0x11c, 0x11d, 0x11e, 0x11f, 0x120, 
	0x121, 0x11c, 0x11d, 0x11e, 0x11f, 0x120, 0x121, 0x122, 0x123, 0x11e, 0x11f, 
	0x120, 0x121, 0x122, 0x123, 0x124, 0x125, 0x120, 0x121, 0x122, 0x123, 0x124, 
	0x125, 0x126, 0x127, 0x104, 0x105, 0x106, 0x107, 0x108, 0x109, 0x10a, 0x10b, 
	0x106, 0x107, 0x108, 0x109, 0x10a, 0x10b, 0x10c, 0x10d, 0x108, 0x109, 0x10a, 
	0x10b, 0x10c, 0x10d, 0x10e, 0x10f, 0x10a, 0x10b, 0x10c, 0x10d, 0x10e, 0x10f, 
	0x110, 0x111, 0x10c, 0x10d, 0x10e, 0x10f, 0x110, 0x111, 0x112, 0x113, 0x10e, 
	0x10f, 0x110, 0x111, 0x112, 0x113, 0x114, 0x115, 0x110, 0x111, 0x112, 0x113, 
	0x114, 0x115, 0x116, 0x117, 0x112, 0x113, 0x114, 0x115, 0x116, 0x117, 0x118, 
	0x119, 0x114, 0x115, 0x116, 0x117, 0x118, 0x119, 0x11a, 0x11b, 0x116, 0x117, 
	0x118, 0x119, 0x11a, 0x11b, 0x11c, 0x11d, 0x118, 0x119, 0x11a, 0x11b, 0x11c, 
	0x11d, 0x11e, 0x11f, 0x11a, 0x11b, 0x11c, 0x11d, 0x11e, 0x11f, 0x120, 0x121, 
	0x11c, 0x11d, 0x11e, 0x11f, 0x120, 0x121, 0x122, 0x123, 0x11e, 0x11f, 0x120, 
	0x121, 0x122, 0x123, 0x124, 0x125, 0x120, 0x121, 0x122, 0x123, 0x124, 0x125, 
	0x126, 0x127, 0x122, 0x123, 0x124, 0x125, 0x126, 0x127, 0x128, 0x129, 0x106, 
	0x107, 0x108, 0x109, 0x10a, 0x10b, 0x10c, 0x10d, 0x108, 0x109, 0x10a, 0x10b, 
	0x10c, 0x10d, 0x10e, 0x10f, 0x10a, 0x10b, 0x10c, 0x10d, 0x10e, 0x10f, 0x110, 
	0x111, 0x10c, 0x10d, 0x10e, 0x10f, 0x110, 0x111, 0x112, 0x113, 0x10e, 0x10f, 
	0x110, 0x111, 0x112, 0x113, 0x114, 0x115, 0x110, 0x111, 0x112, 0x113, 0x114, 
	0x115, 0x116, 0x117, 0x112, 0x113, 0x114, 0x115, 0x116, 0x117, 0x118, 0x119, 
	0x114, 0x115, 0x116, 0x117, 0x118, 0x119, 0x11a, 0x11b, 0x116, 0x117, 0x118, 
	0x119, 0x11a, 0x11b, 0x11c, 0x11d, 0x118, 0x119, 0x11a, 0x11b, 0x11c, 0x11d, 
	0x11e, 0x11f, 0x11a, 0x11b, 0x11c, 0x11d, 0x11e, 0x11f, 0x120, 0x121, 0x11c, 
	0x11d, 0x11e, 0x11f, 0x120, 0x121, 0x122, 0x123, 0x11e, 0x11f, 0x120, 0x121, 
	0x122, 0x123, 0x124, 0x125, 0x120, 0x121, 0x122, 0x123, 0x124, 0x125, 0x126, 
	0x127, 0x122, 0x123, 0x124, 0x125, 0x126, 0x127, 0x128, 0x129, 0x124, 0x125, 
	0x126, 0x127, 0x128, 0x129, 0x12a, 0x12b
};

const INT16U				Radius_File_1[512] =
{
	0x101, 0x102, 0x103, 0x104, 0x105, 0x106, 0x107, 0x108, 0x103, 0x104, 0x105, 
	0x106, 0x107, 0x108, 0x109, 0x10a, 0x105, 0x106, 0x107, 0x108, 0x109, 0x10a, 
	0x10b, 0x10c, 0x107, 0x108, 0x109, 0x10a, 0x10b, 0x10c, 0x10d, 0x10e, 0x109, 
	0x10a, 0x10b, 0x10c, 0x10d, 0x10e, 0x10f, 0x110, 0x10b, 0x10c, 0x10d, 0x10e, 
	0x10f, 0x110, 0x111, 0x112, 0x10d, 0x10e, 0x10f, 0x110, 0x111, 0x112, 0x113, 
	0x114, 0x10f, 0x110, 0x111, 0x112, 0x113, 0x114, 0x115, 0x116, 0x111, 0x112, 
	0x113, 0x114, 0x115, 0x116, 0x117, 0x118, 0x113, 0x114, 0x115, 0x116, 0x117, 
	0x118, 0x119, 0x11a, 0x115, 0x116, 0x117, 0x118, 0x119, 0x11a, 0x11b, 0x11c, 
	0x117, 0x118, 0x119, 0x11a, 0x11b, 0x11c, 0x11d, 0x11e, 0x119, 0x11a, 0x11b, 
	0x11c, 0x11d, 0x11e, 0x11f, 0x120, 0x11b, 0x11c, 0x11d, 0x11e, 0x11f, 0x120, 
	0x121, 0x122, 0x11d, 0x11e, 0x11f, 0x120, 0x121, 0x122, 0x123, 0x124, 0x11f, 
	0x120, 0x121, 0x122, 0x123, 0x124, 0x125, 0x126, 0x103, 0x104, 0x105, 0x106, 
	0x107, 0x108, 0x109, 0x10a, 0x105, 0x106, 0x107, 0x108, 0x109, 0x10a, 0x10b, 
	0x10c, 0x107, 0x108, 0x109, 0x10a, 0x10b, 0x10c, 0x10d, 0x10e, 0x109, 0x10a, 
	0x10b, 0x10c, 0x10d, 0x10e, 0x10f, 0x110, 0x10b, 0x10c, 0x10d, 0x10e, 0x10f, 
	0x110, 0x111, 0x112, 0x10d, 0x10e, 0x10f, 0x110, 0x111, 0x112, 0x113, 0x114, 
	0x10f, 0x110, 0x111, 0x112, 0x113, 0x114, 0x115, 0x116, 0x111, 0x112, 0x113, 
	0x114, 0x115, 0x116, 0x117, 0x118, 0x113, 0x114, 0x115, 0x116, 0x117, 0x118, 
	0x119, 0x11a, 0x115, 0x116, 0x117, 0x118, 0x119, 0x11a, 0x11b, 0x11c, 0x117, 
	0x118, 0x119, 0x11a, 0x11b, 0x11c, 0x11d, 0x11e, 0x119, 0x11a, 0x11b, 0x11c, 
	0x11d, 0x11e, 0x11f, 0x120, 0x11b, 0x11c, 0x11d, 0x11e, 0x11f, 0x120, 0x121, 
	0x122, 0x11d, 0x11e, 0x11f, 0x120, 0x121, 0x122, 0x123, 0x124, 0x11f, 0x120, 
	0x121, 0x122, 0x123, 0x124, 0x125, 0x126, 0x121, 0x122, 0x123, 0x124, 0x125, 
	0x126, 0x127, 0x128, 0x105, 0x106, 0x107, 0x108, 0x109, 0x10a, 0x10b, 0x10c, 
	0x107, 0x108, 0x109, 0x10a, 0x10b, 0x10c, 0x10d, 0x10e, 0x109, 0x10a, 0x10b, 
	0x10c, 0x10d, 0x10e, 0x10f, 0x110, 0x10b, 0x10c, 0x10d, 0x10e, 0x10f, 0x110, 
	0x111, 0x112, 0x10d, 0x10e, 0x10f, 0x110, 0x111, 0x112, 0x113, 0x114, 0x10f, 
	0x110, 0x111, 0x112, 0x113, 0x114, 0x115, 0x116, 0x111, 0x112, 0x113, 0x114, 
	0x115, 0x116, 0x117, 0x118, 0x113, 0x114, 0x115, 0x116, 0x117, 0x118, 0x119, 
	0x11a, 0x115, 0x116, 0x117, 0x118, 0x119, 0x11a, 0x11b, 0x11c, 0x117, 0x118, 
	0x119, 0x11a, 0x11b, 0x11c, 0x11d, 0x11e, 0x119, 0x11a, 0x11b, 0x11c, 0x11d, 
	0x11e, 0x11f, 0x120, 0x11b, 0x11c, 0x11d, 0x11e, 0x11f, 0x120, 0x121, 0x122, 
	0x11d, 0x11e, 0x11f, 0x120, 0x121, 0x122, 0x123, 0x124, 0x11f, 0x120, 0x121, 
	0x122, 0x123, 0x124, 0x125, 0x126, 0x121, 0x122, 0x123, 0x124, 0x125, 0x126, 
	0x127, 0x128, 0x123, 0x124, 0x125, 0x126, 0x127, 0x128, 0x129, 0x12a, 0x107, 
	0x108, 0x109, 0x10a, 0x10b, 0x10c, 0x10d, 0x10e, 0x109, 0x10a, 0x10b, 0x10c, 
	0x10d, 0x10e, 0x10f, 0x110, 0x10b, 0x10c, 0x10d, 0x10e, 0x10f, 0x110, 0x111, 
	0x112, 0x10d, 0x10e, 0x10f, 0x110, 0x111, 0x112, 0x113, 0x114, 0x10f, 0x110, 
	0x111, 0x112, 0x113, 0x114, 0x115, 0x116, 0x111, 0x112, 0x113, 0x114, 0x115, 
	0x116, 0x117, 0x118, 0x113, 0x114, 0x115, 0x116, 0x117, 0x118, 0x119, 0x11a, 
	0x115, 0x116, 0x117, 0x118, 0x119, 0x11a, 0x11b, 0x11c, 0x117, 0x118, 0x119, 
	0x11a, 0x11b, 0x11c, 0x11d, 0x11e, 0x119, 0x11a, 0x11b, 0x11c, 0x11d, 0x11e, 
	0x11f, 0x120, 0x11b, 0x11c, 0x11d, 0x11e, 0x11f, 0x120, 0x121, 0x122, 0x11d, 
	0x11e, 0x11f, 0x120, 0x121, 0x122, 0x123, 0x124, 0x11f, 0x120, 0x121, 0x122, 
	0x123, 0x124, 0x125, 0x126, 0x121, 0x122, 0x123, 0x124, 0x125, 0x126, 0x127, 
	0x128, 0x123, 0x124, 0x125, 0x126, 0x127, 0x128, 0x129, 0x12a, 0x125, 0x126, 
	0x127, 0x128, 0x129, 0x12a, 0x12b, 0x12c
};

INT16S g_awb_new_thr[13*5] =
{
// global
30,
200,
140,
190,
-20,
85,
60,  // 7
130, // 8
45,
90,
35,
58,
3,


// 2800
40 ,
190,
169,
185,
66 ,
81 ,
121,
130,
47 ,
 54,
 44,
 55,
 3,


// 4000
40 ,
190,
151,
164,
29 ,
44 ,
93 ,
100,
56 ,
 63,
 41,
 50,
 2,


// 5000
40 ,
190,
147,
161,
2  ,
15 ,
77 ,
84 ,
68 ,
 75,
 41,
 50,
  2,

// 6500
40 ,
190,
143,
160,
-18,
-6 ,
60 ,
72 ,
77 ,
 90,
 38,
 48,
 2,
};

const ALIGN4 INT32U g_Y_lut[64] =
{
 0x02010100, 0x04040302, 0x07060505, 0x09090807, 0x0c0b0b0a, 0x0f0e0d0d, 0x12111010, 0x15151413,
 0x19181716, 0x1d1c1b1a, 0x21201f1e, 0x26252422, 0x2b2a2827, 0x302f2e2c, 0x36343332, 0x3b3a3837,
 0x41403e3d, 0x47464443, 0x4d4c4a49, 0x5352504f, 0x5a585655, 0x605e5d5b, 0x66656361, 0x6c6b6968,
 0x7371706e, 0x79777674, 0x7f7d7c7a, 0x85838280, 0x8b898886, 0x908f8d8c, 0x96949392, 0x9b999897,
 0xa09e9d9c, 0xa5a3a2a1, 0xa9a8a7a6, 0xaeadabaa, 0xb2b1b0af, 0xb6b5b4b3, 0xbab9b8b7, 0xbebdbcbb,
 0xc2c1c0bf, 0xc5c4c4c3, 0xc9c8c7c6, 0xcccbcbca, 0xcfcfcecd, 0xd3d2d1d0, 0xd6d5d4d3, 0xd9d8d7d6,
 0xdbdbdad9, 0xdedddddc, 0xe1e0e0df, 0xe3e3e2e1, 0xe6e5e5e4, 0xe8e8e7e7, 0xebeaeae9, 0xededeceb,
 0xf0efeeee, 0xf2f1f1f0, 0xf4f4f3f2, 0xf6f6f5f5, 0xf8f8f7f7, 0xfbfafaf9, 0xfdfcfcfb, 0xfffefefd,
};


const ALIGN4 INT32U g_Y_lut2[64] =
{
 0x02010100, 0x04030302, 0x07060605, 0x09080807, 0x0c0b0a0a, 0x0f0e0d0d, 0x1110100f, 0x14131312,
 0x18171615, 0x1a191918, 0x1d1d1c1b, 0x201f1f1e, 0x24232221, 0x27272625, 0x2b2a2928, 0x2f2e2d2c,
 0x33323130, 0x37363534, 0x3b3a3938, 0x403f3d3c, 0x44434241, 0x49474645, 0x4e4c4b4a, 0x5351504f,
 0x57565554, 0x5c5b5a58, 0x61605e5d, 0x66646362, 0x6b6a6867, 0x6f6e6d6c, 0x74737271, 0x78777675,
 0x7e7c7b7a, 0x8281807f, 0x87858483, 0x8b8a8988, 0x908f8e8c, 0x94939291, 0x98979695, 0x9d9b9a99,
 0xa1a09f9e, 0xa5a4a3a2, 0xa9a8a7a6, 0xadacabaa, 0xb2b0afae, 0xb5b4b3b3, 0xbab9b8b7, 0xbdbcbcbb,
 0xc1c0bfbe, 0xc6c5c4c2, 0xc9c8c7c7, 0xcdcccbca, 0xd1d0cfce, 0xd5d4d3d2, 0xd9d8d7d6, 0xdddcdbda,
 0xe1e0dfde, 0xe6e5e3e2, 0xeae9e8e7, 0xeeedeceb, 0xf2f1f0ef, 0xf6f5f4f3, 0xfbf9f8f7, 0xfffefdfc,
};


const ALIGN4 INT32U g_Y_identity[64] =
{
 0x03020100, 0x07060504, 0x0b0a0908, 0x0f0e0d0c, 0x13121110, 0x17161514, 0x1b1a1918, 0x1f1e1d1c,
 0x23222120, 0x27262524, 0x2b2a2928, 0x2f2e2d2c, 0x33323130, 0x37363534, 0x3b3a3938, 0x3f3e3d3c,
 0x43424140, 0x47464544, 0x4b4a4948, 0x4f4e4d4c, 0x53525150, 0x57565554, 0x5b5a5958, 0x5f5e5d5c,
 0x63626160, 0x67666564, 0x6b6a6968, 0x6f6e6d6c, 0x73727170, 0x77767574, 0x7b7a7978, 0x7f7e7d7c,
 0x83828180, 0x87868584, 0x8b8a8988, 0x8f8e8d8c, 0x93929190, 0x97969594, 0x9b9a9998, 0x9f9e9d9c,
 0xa3a2a1a0, 0xa7a6a5a4, 0xabaaa9a8, 0xafaeadac, 0xb3b2b1b0, 0xb7b6b5b4, 0xbbbab9b8, 0xbfbebdbc,
 0xc3c2c1c0, 0xc7c6c5c4, 0xcbcac9c8, 0xcfcecdcc, 0xd3d2d1d0, 0xd7d6d5d4, 0xdbdad9d8, 0xdfdedddc,
 0xe3e2e1e0, 0xe7e6e5e4, 0xebeae9e8, 0xefeeedec, 0xf3f2f1f0, 0xf7f6f5f4, 0xfbfaf9f8, 0xfffefdfc,
};


const ALIGN4 INT16U NRthr[6][7] =
{
    {1, 2, 3, 1, 2, 3, 4},
    {1, 2, 3, 3, 6, 9, 12},
    {1, 2, 3, 4, 7, 10, 14},
    {1, 2, 3, 4, 8, 12, 16},
    {1, 2, 3, 4, 8, 16, 32},
    {1, 2, 3, 5, 10, 20, 32}
};

const ALIGN4 INT16U DPCthr[6][4] =
{
    {0, 20, 35, 4},
    {0, 22, 30, 4},
    {0, 24, 28, 4},
    {0, 26, 25, 4},
    {0, 28, 23, 4},
    {0, 30, 20, 4}

};

const gpCisCali_t g_cali =
{
	(INT16U *) g_ob,
	(INT16U *) Radius_File_0,
	(INT16U *) Radius_File_1,
	(INT16U *) CLPoint,
	(INT16U *) MaxTan8,
	(INT16U *) Slope4,
	20,			/*segR, 0x194[4:0]*/
	(INT32U *) g_gamma,
	(INT32U *) g_gamma2,
	(INT16S *) g_awb_thr,
	//(INT16U(*)[2]) g_wb_gain,
	(INT16S *) g_color_matrix,
	(INT16S *) g_awb_new_thr,
	sizeof(g_awb_new_thr)/2/13,
	
	0,			/*Ae weight*/

	/*YUV Spec Constrat*/
	(INT32U *) g_Y_lut,
	(INT32U *) g_Y_lut2,

	(INT16U (*)[7]) NRthr,
	(INT16U (*)[4]) DPCthr,
};

#endif
